package com.smforj.ssm.frame.core.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/***
 * 字符串处理工具类
 * 
 * @author Haijun Gao 
 * @date 2016-8-4 下午4:00:39
 * @desp http://www.cnblogs.com/saga5998/
 * @email 573107773@qq.com
 */
public final class StringEx { 
	
	/***
	 * 判断是否为Null 或 ""
	 * @param str 要判断的字符串
	 * @return 为Null 或 "" true  否则false
	 * @date 2016-8-4 下午4:01:39
	 */
	public static Boolean isExEmpty(String str)
	{
		if(str == null || "".equals(str.trim()))
			return true;
		return false;
	}
	/**
	 * 字符串首字母小写
	 * @param str
	 * @return
	 */
	public static String toLowerCaseFirstOne(String str) {
		if (str == null || "".equals(str.trim()))
			return str;
		str = str.trim();
		if (Character.isLowerCase(str.charAt(0)))
			return str;
		else
			return (new StringBuilder()).append(Character.toLowerCase(str.charAt(0))).append(str.substring(1))
					.toString();
	}

	/**
	 * 字符串首字母大写
	 * @param str
	 * @return
	 */
	public static String toUpperCaseFirstOne(String str) {
		if (str == null || "".equals(str.trim()))
			return str;
		str = str.trim();
		if (Character.isUpperCase(str.charAt(0)))
			return str;
		else
			return (new StringBuilder()).append(Character.toUpperCase(str.charAt(0))).append(str.substring(1))
					.toString();
	}
	
	/**
	 * 判断字符串中是否包含中文
	 * @param str
	 * 待校验字符串
	 * @return 是否为中文
	 * @warn 不能校验是否为中文标点符号 
	 */
	public static boolean isContainChinese(String str) {
	 Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
	 Matcher m = p.matcher(str);
	 if (m.find()) {
	  return true;
	 }
	 return false;
	}
	
	public static void main(String[] args)
	{
		String str = " ";
		System.out.println(StringEx.isExEmpty(str));
	}
}
